<?php

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of ClienteModel
 *
 * @author Pablo
 */

require_once("autoload.php");

class ClienteModel {
    private $pdo = null;
    
    public function __construct() {
        $this->pdo = BD::getInstancia();
    }
    
    public function salvar (Cliente &$cliente) {
        $sql = "INSERT INTO cliente (nome, sobrenome, email, senha, dddtelefone, telefone, nivel, status) VALUES (:nome, :sobrenome, :email, :senha, :dddtelefone, :telefone, :nivel, :status)";
        $params = array(
            "nome"          => $cliente->getNome(),
            "sobrenome"     => $cliente->getSobrenome(),
            "email"         => $cliente->getEmail(),
            "senha"         => $cliente->getSenha(),
            "dddtelefone"   => $cliente->getDddtelefone(),
            "telefone"      => $cliente->getTelefone(),
            "nivel"         => $cliente->getNivel(),
            "status"        => $cliente->getStatus()
        );
        
        if($cliente->getId() != 0) {
               $sql = "UPDATE cliente SET nome = :nome, sobrenome = :sobrenome, email = :email, senha = :senha, dddtelefone = :dddtelefone, telefone = :telefone, nivel = :nivel, status = :status WHERE id = :id";
               $params["id"] = $cliente->getId();
        }
        
        try {
            $ps = $this->pdo->prepare($sql);
            $ps->execute($params);
            
            if($cliente->getId() == 0)
                $cliente->setId($pdo->lastInsertId());
        }
        catch (PDOException $e) {
            die("Erro ao salvar cliente: " . $e->getMessage());
        }
    }
    
    public function carregar ($sql, $params = null) {
        try {
            $ps = $this->pdo->prepare($sql);
            $ps->execute($params);
            
            if($ps->rowCount() == 0) 
                return false;
            
            $registros = $ps->fetchAll();
            
            $clientes = array();
            
            foreach($registros as $registro) {
                $cliente = new Cliente();
                
                $cliente->setId($registro["id"]);
                $cliente->setNome($registro["nome"]);
                $cliente->setSobrenome($registro["sobrenome"]);
                $cliente->setEmail($registro["setEmail"]);
                $cliente->setSenha($registro["setSenha"]);
                $cliente->setDddtelefone($registro["dddtelefone"]);
                $cliente->setTelefone($registro["telefone"]);
                $cliente->setDatacadastro($registro["datacadastro"]);
                $cliente->setNivel($registro["nivel"]);
                $cliente->setStatus($registro["status"]);
                
                array_push($clientes, $cliente);
            }
            
            return $clientes;
        } catch (Exception $e) {
            die("Erro ao carregar cliente: " . $e->getMessage());
        }
    }
}

